// app.js
App({
  globalData: {
    userInfo: null,
    token: '',
    tags: []
  },
  onLaunch() {
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 检查登录状态
    const token = wx.getStorageSync('token')
    const userInfo = wx.getStorageSync('userInfo')
    if (token && userInfo) {
      this.globalData.token = token
      this.globalData.userInfo = userInfo
      this.loadUserTags()
    }

    // 登录
    this.login()
  },
  
  // 用户登录函数
  login() {
    wx.login({
      success: res => {
        if (res.code) {
          // 发送 res.code 到后台换取 openId, sessionKey, unionId
          // 这里模拟登录过程，实际项目中需要调用真实的后端接口
          console.log('登录成功，获取到code:', res.code)
          // 模拟登录成功，保存token
          this.globalData.token = 'mock_token_' + Date.now()
          wx.setStorageSync('token', this.globalData.token)
        }
      },
      fail: err => {
        console.error('登录失败:', err)
      }
    })
  },
  
  // 获取用户信息
  getUserInfo() {
    return new Promise((resolve, reject) => {
      wx.getUserProfile({
        desc: '用于完善会员资料',
        success: (res) => {
          this.globalData.userInfo = res.userInfo
          wx.setStorageSync('userInfo', res.userInfo)
          resolve(res.userInfo)
        },
        fail: (err) => {
          reject(err)
        }
      })
    })
  },
  
  // 加载用户标签列表
  loadUserTags() {
    // 模拟从服务器加载用户标签数据
    // 实际项目中需要调用真实的后端接口
    const mockTags = wx.getStorageSync('userTags') || []
    this.globalData.tags = mockTags
  },
  
  // 保存用户标签 - 只保留一个标签
  saveUserTag(tag) {
    // 只保留一个标签，新标签会替换旧标签
    const tags = [tag];
    
    this.globalData.tags = tags;
    wx.setStorageSync('userTags', tags);
  },
  
  // 删除用户标签
  deleteUserTag(tagId) {
    const tags = this.globalData.tags.filter(t => t.id !== tagId)
    this.globalData.tags = tags
    wx.setStorageSync('userTags', tags)
  }
})